package exercise;

import java.util.ArrayList;
import java.util.List;

// 给你一个整数数组 nums ，数组中的元素 互不相同 。返回该数组所有可能的子集（幂集）。
// 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
// https://leetcode.cn/problems/subsets/
public class L230629_I {
    public static List<List<Integer>> subsets(int[] nums) {
        List<List<Integer>> ans = new ArrayList<>();
        ans.add(new ArrayList<>());

        for (int n : nums) {
            int sz = ans.size();
            for (int i = 0; i < sz; i++) {
                List<Integer> tmp = new ArrayList<>(ans.get(i));
                tmp.add(n);
                ans.add(tmp);
            }
        }

        return ans;
    }

    public static void main(String[] args) {
        int[] nums = {1, 2, 3};
        List<List<Integer>> list = subsets(nums);

        System.out.println(list);
    }
}
